package com.zrrd.learn.chapter05;

/**
 * 多数组概念
 *
 * @author asus
 * @version 1.0
 * @date 2023/7/11 11:08
 */
public class LearnArray01 {
    public static boolean question1(int x,int[] arr) {
//        1. a:1,b:[1,2,3,4,5,6,7,8] b中是否存在a
//        假定是错
        boolean ist=false;
        //证明
        /**
         * 1.对数组进行一个一个的查看（循环）
         * 2.是否应该对取出来的每一个数组进行比较
         * 3.把结果ist
         */
        for (int i = 0,max=arr.length; i < max; i++) {
            if(arr[i]==x){
                ist=true;
                break;
            }
        }
        return ist;
    }

    /**
     * 用来判断sub是否完全包含在target中，存在返回true，反之false
     * @param sub  子数组
     * @param target  目标数组
     * @return      是否存在
     */
    public static boolean question2(int[] sub, int[] target) {
//        boolean t = true;
        /**
         * 1 : 容错处理,判断一下target.length一定大于sub.length
         * 1.1  初始位置 的判断
         * 2 :  循环
         */
        if (target.length < sub.length) {
            return false;
        }

        for (int i = 0; i < target.length; i++) {
//            num是比较之后正确的次数
            int num = 0;
            for (int j = 0; j < sub.length; j++) {
                //容错
                if(i + j < target.length){
                    //比较
                    if (sub[j] == target[i + j]) {
                        num++;
                    }
                }
            }
            //如果比较正确的次数等于小数组的长度，则循环结束，存在
            if(num == sub.length){
                return true;
            }
        }
        return false;
    }


    public static void main(String[] args) {
        int x=13;
        int[] arr={1,2,3,4};


        int[] a={1,2};
        int[] b={1,2,3,4,1};
        System.out.println(question2(a, b));
//        int[] arr4={1,2};
//        int[] arr5={1,2,3,4};
//        System.out.println(question3(arr4, arr5));
    }
}
